﻿using System;

namespace Affinity.Flux
{
    /// <summary>
    /// Interface that all matchmakers (which pair inlets and outlets) must implement.
    /// </summary>
    public interface IMatchMaker
    {
        /// <summary>
        /// Pairs the specified inlet with the specified outlet.
        /// </summary>
        /// <param name="inlet"></param>
        /// <param name="outlet"></param>
        void Pair(Inlet inlet, Outlet outlet);

        /// <summary>
        /// Unpairs the specified inlet from the specified outlet.
        /// </summary>
        /// <param name="inlet"></param>
        /// <param name="outlet"></param>
        void Unpair(Inlet inlet, Outlet outlet);
    }
}
